package com.thrift.distributed.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @包名称 com.thrift.distributed.annotation
 * @类描述 <pre></pre>
 * @作者 zhangbo
 * @创建时间 2019/9/19
 * @版本 1.00
 * @修改记录 <pre>
 *     版本           修改人         修改日期         修改内容描述
 *     -----------------------------------------------------------
 *     1.00           Lenovo        2019/9/19
 *     -----------------------------------------------------------
 * </pre>
 */
@Target(value = {ElementType.METHOD})
@Retention(value = RetentionPolicy.RUNTIME)
public @interface ChargeManagement {
    /*入参对象名*/
    String paramName() default "";
    /*appId属性名*/
    String appId() default "appId";
    /*0:从配置方法的注解中获取methodName，1：从属性中获取methodName中指定的属性*/
    int methodType() default 0;
    /*方法名或者属性名*/
    String methodName();
    /*失败策略（当检测服务异常时，true:允许访问，false:拒绝访问）*/
    boolean failureStrategy() default false;
    /*查询条件属性名列表（多个时拼接起来，用于免检查扣费value查询条件）*/
    String[] valueKeys();
}
